perm filename IPUB[L,MRC] blob sn#386977 filedate 1979-01-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	.<< BASED ON General PUB Macros in GENRAL.PUB[SUB,SYS]
C00004 00003	.REQUIRE "BASIC.PUB[1,lyn]" SOURCE_FILE 
C00016 00004	.<< Number sections. >>
C00023 00005	.<< Quote macro. >>
C00024 00006	.<< Put in a footnote. >>
C00025 00007	.<< Generate table of contents. >>
C00034 00008	.<< Set up for body of text. >>
C00035 ENDMK
C⊗;
.<< BASED ON General PUB Macros in GENRAL.PUB[SUB,SYS]
.
.	    Version 1.1, 4 March 1976
.		 Brian P. McCune
.   ALTERED BY GHB, July 1977 for DISSERTATION
.Documentation for this set of general PUB macros is in GENRAL.BPM[UP,DOC]. >>
.REQUIRE "BASIC.PUB[1,lyn]" SOURCE_FILE ;
.
.
.
.<< Number sections. >>
.
.
.
.<< Generate section heading and table of contents entry. >>
.
. COUNT SECTION FROM 1 TO 99; 
.MACRO S(NAME)
.	⊂
.	EVERY HEADING(,,);
.	EVERY FOOTING(,{PAGE!},);
.
.	SECNAME ← SSNAME ← NULL;
.		BEGIN "PRINT SECTION HEADING"
.		NEXT PAGE;
.   		NEXT SECTION; 
.		TURN ON "{#←";
.		INDENT 0,4,0;
.		NOJUST;
.		RETAIN;
. 		SKIP 6 ;
⊗⊗←CHAPTER # # {SECTION!}⊗
.		SKIP 2 ;
⊗⊗←NAME⊗
.		SKIP 2;
.		SECNAME ← "NAME";
.		SEND CONTENTS
.			⊂
.			INDENT 0,4,4;
.			TURN ON "∞\→#";
.			SKIP 1;
.			GUARANTEE LINES 2;
{SECTION!}.  NAME\∞ ∞.∞ →#{PAGE!}
.			⊃;
.		END "PRINT SECTION HEADING";
.	EVERY HEADING({SECNAME},,{PAGE!});
.	EVERY FOOTING(,,);
.	⊃;
.
.
.<< Generate preliminary pages and table of contents entry. >>
.
.MACRO P(NAME)
.	⊂
.	EVERY HEADING(,,);
.	EVERY FOOTING(,{PAGE!},);
.
.	SECNAME ← SSNAME ← NULL;
.		BEGIN "PRINT SECTION HEADING"
.		NEXT PAGE;
.		TURN ON "{#←";
.		INDENT 0,4,0;
.		NOJUST;
.		RETAIN;
. 		SKIP 6 ;
⊗⊗←NAME⊗
.		SKIP 2;
.		SECNAME ← "NAME";
.		SEND CONTENTS
.			⊂
.			INDENT 0,4,4;
.			TURN ON "∞\→#";
.			SKIP 1;
.			GUARANTEE LINES 2;
NAME\∞ ∞.∞ →#{PAGE!}
.			⊃;
.		END "PRINT SECTION HEADING";
.	EVERY HEADING({SECNAME},,{PAGE!});
.	EVERY FOOTING(,,);
.	⊃;
.
.
.<< Generate subsection heading and table of contents entry. >>
.
. << COUNT SUBSECTION FROM 1 TO 99 IN SECTION PRINTING "!.1"; >>
.MACRO SS(NAME)
.	⊂
.	SSNAME ← NULL;
.		BEGIN "PRINT SUBSECTION HEADING"
.<<		IF LINES < (5+5*LINESPACING) THEN SKIP TO LINE 1 ELSE SKIP 1;  >>
.		IF LINES < 6 THEN SKIP TO LINE 1 ELSE SKIP 1;
. <<		NEXT SUBSECTION; >>
.		TURN ON "{";
.		INDENT 3,8,0;
.		NOJUST;
.		RETAIN;
.<< ⊗⊗{SUBSECTION!}  NAME⊗ >>
⊗⊗NAME⊗
.		SSNAME ← "NAME";
.		SEND CONTENTS
.			⊂
.			INDENT 4,9,4;
.			GUARANTEE LINES 2;
.<< {SUBSECTION!}  NAME\∞ ∞.∞ →#{PAGE!} >>
NAME\∞ ∞.∞ →#{PAGE!}
.			⊃;
.		END "PRINT SUBSECTION HEADING";
.	⊃;
.
.<< Generate subsubsection heading and table of contents entry. >>
.
.<< COUNT SUB2 FROM 1 TO 99 IN SUBSECTION PRINTING "!.1"; >>
.MACRO SSS(NAME)
.	⊂
.		BEGIN "PRINT SUBSUBSECTION HEADING"
.<<		IF LINES < (5+5*LINESPACING) THEN SKIP TO LINE 1 ELSE SKIP 1; >>
.		IF LINES < 6 THEN SKIP TO LINE 1 ELSE SKIP 1;
. <<		NEXT SUB2; >>
.		TURN ON "{";
.		INDENT 6,13,0;
.		NOJUST;
.		RETAIN;
.<< ⊗⊗{SUB2!}  NAME⊗ >>
⊗⊗NAME⊗
.		SEND CONTENTS
.			⊂
.			INDENT 9,16,4;
.			GUARANTEE LINES 2;
.<< {SUB2!}  NAME\∞ ∞.∞ →#{PAGE!} >>
NAME\∞ ∞.∞ →#{PAGE!}
.			⊃;
.		END "PRINT SUBSUBSECTION HEADING";
.	⊃;
.
.<< Generate appendix heading and table of contents entry. >>
.
.COUNT APPENDIX FROM 1 TO 99 PRINTING "I";
.MACRO APP(NAME)
.	⊂
.	SECNAME ← SSNAME ← NULL;
.		BEGIN "PRINT APPENDIX HEADING"
.  		NEXT PAGE;
.		NEXT APPENDIX;
.		EVERY HEADING(,,);
.		EVERY FOOTING(,{PAGE!},);
.		TURN ON "{←";
.		INDENT 0,4,0;
.		NOJUST;
.		RETAIN;
←⊗⊗Appendix {APPENDIX!}.⊗
. SKIP 2;
⊗⊗←NAME⊗
.		SKIP 1;
.		SECNAME ← "Appendix " & APPENDIX!;
.		SSNAME ← "NAME";
.<< 		IF APPENDIX = 1 THEN
.<< .			BEGIN "FIRST TIME"
.<< .			SECTYPE ← "Appendix";
.<< .			SEND CONTENTS
.<< .				⊂
.<< .				IF LINES < (6 + 4*LINESPACING)
.<< .					THEN SKIP TO LINE 1
.<< .					ELSE SKIP 2;
.<< .				INDENT 12,18,0;
.<< ⊗⊗Appendix→Page⊗
.<< .				⊃;
.<< .			EVERY HEADING({SECNAME},,{PAGE!});
.<< .			EVERY FOOTING(,,);
.<< .			END "FIRST TIME"; 
.  >>
.		EVERY HEADING({SECNAME},,{PAGE!});
.		EVERY FOOTING(,,);
.		SEND CONTENTS
.			⊂
.			SKIP 1;
.			INDENT 0,4,4;
.			TURN ON "∞\→#";
.			GUARANTEE LINES 2;
Appendix {APPENDIX!}.  NAME\∞ ∞.∞ →#{PAGE!}
.			⊃;
.		END "PRINT APPENDIX HEADING";
.	⊃;
.
.<< Generate centered subtitle heading without table of contents entry. >>
.
.MACRO CB(TITLE)
.	⊂
.		BEGIN "PRINT CENTERED HEADING"
.		TURN ON "←";
.		IF LINES < (3*LINESPACING) THEN SKIP TO LINE 1;
⊗⊗←TITLE⊗
.		END "PRINT CENTERED HEADING";
.	⊃;
.<< Quote macro. >>
.
.MACRO XQUOTE
.	⊂
.	SPACING 0;
.	PREFACE 1;
.	NARROW 10,5;
.	INDENT 0,0,0;
.	⊃;
.
.<< Put in a footnote. >>
.
.COUNT FOOTNOTE INLINE FROM 1 TO 999 IN SECTION PRINTING "%51%*";
.FOOTSEP ← "__________";
.AT "∪∪" ENTRY "∪"
.	⊂
.	NEXT FOOTNOTE;
.	FOOTNOTE!;
.	SEND FOOT
.		⊂
.		BEGIN "NEXT FOOTNOTE"
.		VARIABLE LSAV,RSAV;
.		SELECT 1;
.		INDENT 5,0,0;
.		TURN ON "{#";
.		LSAV←LMARG;
.		RSAV←RMARG;
.		LMARG←0;
.		RMARG←PAGE_WIDTH;
.		JUSTIFY;
.		SPACES 1;
{FOOTNOTE!} # ENTRY
.		LMARG←LSAV;
.		RMARG←RSAV;
.		END "NEXT FOOTNOTE";
.		⊃;
.	⊃;
.
.<< Generate table of contents. >>
.
.MACRO COLLECT CONTENTS
.	⊂
.   	COUNT PAGE FROM 1 TO 99 PRINTING "i";
.	EVERY HEADING(Table of Contents,,{PAGE!});
.<<  REQUIRE "ACKNOW[MUS,GHB]" SOURCE_FILE;  >>
.	PORTION CONTENTS;
.	TURN ON "{#\∞→";
.	FILL;
.	NOJUST;
.	RETAIN;
.	CRBREAK;
.	TABS 9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75;
.	PREFACE SPREAD - 1;
.	SECTYPE ← "Chapter";
.	MACRO GUARANTEE LINES(MINIMUM_LINES)
.		⊂
.		IF LINES < (MINIMUM_LINES*SPREAD + SPREAD - 1) THEN
.			BEGIN "NEW COLUMN"
.			SKIP TO LINE 1;
.			INDENT 12,18,0;
⊗⊗{SECTYPE}→Page⊗
.			END "NEW COLUMN";
.		⊃;
.	INDENT 12,18,0;
⊗⊗Chapter→Page⊗
.	TURN ON "∞" ;
.	RECEIVE;
.	⊃;
. 
.<< Set up for body of text. >>
.
.<<  PORTION MAIN  >>
.
.  EVERY HEADING({SECNAME},{date},{PAGE!});
.  EVERY FOOTING(,,);
.  SECNAME ← SSNAME ← NULL;
.
. SELECT 1;
. JUSTIFY;
. COUNT PAGE FROM 1 TO 999;
. SPACES 2;
. INDENT 5;